package com.ruoyi.project.business.dailyschedulerule.mapper;

import com.ruoyi.project.business.dailyschedulerule.entity.DailyscheduleRule;
import org.apache.ibatis.annotations.Param;

import java.time.LocalDate;
import java.util.List;

/**
 * 日排班规则Mapper接口
 * 
 * @author ${author}
 * @date 2024-04-03
 */
public interface DailyscheduleRuleMapper {
    /**
     * 查询日排班规则
     * 
     * @return 日排班规则
     */
    public DailyscheduleRule selectDailyscheduleRuleById(Long id);

    /**
     * 查询日排班规则列表
     * 
     * @return 日排班规则集合
     */
    public List<DailyscheduleRule> selectDailyscheduleRuleList(DailyscheduleRule dailyscheduleRule);

    /**
     * 新增日排班规则
     * 
     * @return 结果
     */
    public int insertDailyscheduleRule(DailyscheduleRule dailyscheduleRule);

    /**
     * 修改日排班规则
     * 
     * @return 结果
     */
    public int updateDailyscheduleRule(DailyscheduleRule dailyscheduleRule);

    /**
     * 删除日排班规则
     * 
     * @return 结果
     */
    public int deleteDailyscheduleRuleById(Long id);

    /**
     * 批量删除日排班规则
     * 
     * @return 结果
     */
    public int deleteDailyscheduleRuleByIds(Long[] ids);

    List<DailyscheduleRule> selectRulesByUserIds(@Param("userIds") List<Long> userIds,
                                                 @Param("ruleDate") LocalDate ruleDate,
                                                 @Param("tenantId") Long tenantId);
}
